package br.edu.ifrn.servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import br.edu.ifrn.beans.Egresso;
import br.edu.ifrn.beans.Estagio;
import br.edu.ifrn.persistencia.EgressoDAO;
import br.edu.ifrn.persistencia.EstagioDAO;

@SuppressWarnings("serial")
public class EgressoServlet extends HttpServlet {
	private HttpSession sessao;
	private EgressoDAO egressoNoBanco = new EgressoDAO();
	EstagioDAO estagiodoBanco = new EstagioDAO();

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
		sessao = req.getSession();
		addEgresso(req, resp);
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		sessao = request.getSession();
		logar(request, response);
	}

	public void addEgresso(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		RequestDispatcher jsp;
		sessao.removeAttribute("erroEgresso");
		if(request.getParameter("senha1").equals(request.getParameter("senha2"))){
			Egresso novoEgresso = new Egresso();

			novoEgresso.setMatricula(request.getParameter("matricula"));
			novoEgresso.setNome(request.getParameter("nome"));
			novoEgresso.setTelefone(request.getParameter("telefone"));
			novoEgresso.setCpf(request.getParameter("cpf"));
			novoEgresso.setRg(request.getParameter("rg"));
			novoEgresso.setLogradouro(request.getParameter("logradouro"));
			novoEgresso.setNumero(request.getParameter("numero"));
			novoEgresso.setBairro(request.getParameter("bairro"));
			novoEgresso.setCidade(request.getParameter("cidade"));
			novoEgresso.setUF(request.getParameter("uf"));
			novoEgresso.setComplemento(request.getParameter("complemento"));
			novoEgresso.setEmail(request.getParameter("email"));
			novoEgresso.setHabilidades(request.getParameter("habilidades"));
			novoEgresso.setSenha(request.getParameter("senha1"));
			
			egressoNoBanco.inserirEgresso(novoEgresso);
			sessao.setAttribute("egresso", novoEgresso);
			String mensagem = "Cadastro realizado com sucesso";
			sessao.setAttribute("mensagem", mensagem);
			
			jsp = request.getRequestDispatcher("egressos.jsp");
			jsp.forward(request, response);

		}else{
			String erroEgresso = "As senhas digitadas foram diferentes";
			sessao.setAttribute("erroEgresso", erroEgresso);
			jsp = request.getRequestDispatcher("novoegresso.jsp");
			jsp.forward(request, response);
		}
	}

	private void logar(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
		RequestDispatcher jsp;
		Egresso egresso = egressoNoBanco.logar(req.getParameter("matricula"), req.getParameter("senha1"));
		if (egresso == null) {
			String erroEgresso = "Usuario Invalido";
			sessao.setAttribute("erroEgresso", erroEgresso);
			jsp = req.getRequestDispatcher("egresso.jsp");
			jsp.forward(req, resp);
		} else {
			sessao.removeAttribute("erroEgresso");
			sessao.setAttribute("egresso", egresso);
			String mensagem = "Bem-vindo";
			sessao.setAttribute("mensagem", mensagem);
			List<Estagio> estagios = estagiodoBanco.listarEstagiosPorMatricula(req.getParameter("matricula"));
			sessao.setAttribute("estagios", estagios);
			jsp = req.getRequestDispatcher("egressos.jsp");
			jsp.forward(req, resp);
		}
	}

}
